//
//  AppDelegate.swift
//  Sina
//
//  Created by maling  on 15/11/3.
//  Copyright © 2015年 maling . All rights reserved.
//

import UIKit

@UIApplicationMain
//错误在这个位置就是OC中的语句错误
class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?

    func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
       
        
          /// 测试解档
        print(UserAccountViewModel.sharedUserAccount.userAccount)
        
          //MAEK: - 调用全局的设置修改点击按钮的渲染颜色
        setupAppearance()
        
        
        window = UIWindow(frame: UIScreen.mainScreen().bounds)
        window?.backgroundColor = UIColor.whiteColor()
        window?.rootViewController = defaultRootViewController//WelcomeController()//NewFeatureController() //MainViewController()
        
        //显示出来window
        window?.makeKeyAndVisible()
        
        //  利用通知监听控制器的切换
        // MARK: 默认通知是在主队列
        NSNotificationCenter.defaultCenter().addObserverForName(
            WBSwitchRootViewControllerNotification,     // 通知名称， 通知中心用来识别通知的
            object: nil,                                // 发送通知的对象， 如果为nil， 监视任何对象
            queue: nil)                                 // nil 主队列
            { [weak self](notification) -> Void in      // weak self
                
                print([NSThread.currentThread()])
                print(notification)
                
                
                let vc = notification.object != nil ? WelcomeController() : MainViewController()
                //切换控制器
                self?.window?.rootViewController = vc
        }

        return true
    }
    
    //MARK: - 注销通知 - 注销指定的通知
    deinit {
    
        NSNotificationCenter.defaultCenter().removeObserver(self,  // 监听者
            name: WBSwitchRootViewControllerNotification,          // 监听的通知
            object: nil)                                           // 发送通知的对象
    }
    


    //设置一个全局外观：
    private func setupAppearance() {
    
        //修改导航栏的外观属性  ---  要在控件创建之前设置-一经设置全局有效
    
        UINavigationBar.appearance().tintColor = WBAppearanceTintColor
        UITabBar.appearance().tintColor = WBAppearanceTintColor
    
    }

}

//MARK: - 界面切换代码
extension AppDelegate {

    
     /// 启动的跟视图控制器
    private var defaultRootViewController: UIViewController {
    
        // 判断的登录那个（是否登录）
        if UserAccountViewModel.sharedUserAccount.userLogin {
        
            return isNewVersion ? NewFeatureController() : WelcomeController()
        }
        
        //没有登录返回主控制器
        return MainViewController()
    }
    
    
    
    
    // 判断是否是新版本
    
    private var isNewVersion: Bool {
     // 1. 当前的版本 - info.plist
    // print(NSBundle.mainBundle().infoDictionary)
    //得到的时字符串
    let currentVersion = NSBundle.mainBundle().infoDictionary!["CFBundleShortVersionString"] as! String
    //将版本字符串转换为double类型的
    let version = Double(currentVersion)
    print("当前版本号\(version)")
        
      // 2.之前的版本，把当前的版本保存在用户偏好设置    ----如果key不存在 ，返回0
        let sandboxVersionKey = "sandboxVersionKey"
        let sandboxVersion = NSUserDefaults.standardUserDefaults().doubleForKey(sandboxVersionKey)
        print("之前版本号\(sandboxVersion)")
        
     // 3. 保存当前版本
        NSUserDefaults.standardUserDefaults().setDouble(version!, forKey: sandboxVersionKey)
        
       return version > sandboxVersion
    }
    

    
}

